3.4 Analyzer Internals
The Semantic analyzer is a complex engine which has
been broken down across several modules. When the Semantic
analyzer fails, start with
semantic-analyze-debug-assist, then dive into some
of these files.
- semantic-analyze.el
- The core analyzer for defining the current
context. The current context is an object that contains
references to aspects of the local context including the
current prefix, and a tag list defining what the prefix
means.
- semantic-analyze-complete.el
- Provides
semantic-analyze-possible-completions.
- semantic-analyze-debug.el
- The analyzer debugger. Useful when attempting to get
everything configured.
- semantic-analyze-fcn.el
- Various support functions needed by the
analyzer.
- semantic-ctxt.el
- Local context parser. Contains overloadable functions used
to move around through different scopes, get local variables,
and collect the current prefix used when doing
completion.
- semantic-scope.el
- Calculate scope for a location in a buffer. The
scope includes local variables, and tag lists in scope for
various reasons, such as C++ using statements.
- semanticdb-typecache.el
- The typecache is part of
semanticdb, but is
used primarilly by the analyzer to look up datatypes and
complex names. The typecache is bound across source files and
builds a master lookup table for data type names.
- semantic-ia.el
- Interactive Analyzer functions. Simple routines that do
completion or lookups based on the results from the Analyzer.
These routines are meant as examples for application writers,
but are quite useful as they are.
- semantic-ia-sb.el
- Speedbar support for the analyzer, displaying context info,
and completion lists.